package com.ygxsk.carhome.ui;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Process;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

import androidx.annotation.NonNull;

import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.ColorUtils;
import com.blankj.utilcode.util.DeviceUtils;
import com.blankj.utilcode.util.FileUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.NetworkUtils;
import com.blankj.utilcode.util.PathUtils;
import com.blankj.utilcode.util.ScreenUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.blankj.utilcode.util.Utils;
import com.gyf.immersionbar.ImmersionBar;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.trello.rxlifecycle4.components.support.RxAppCompatActivity;
import com.umeng.commonsdk.UMConfigure;
import com.ygxsk.carhome.CarApplication;
import com.ygxsk.carhome.CarHelper;
import com.ygxsk.carhome.R;
import com.ygxsk.carhome.constant.ConstantApi;
import com.ygxsk.carhome.constant.ConstantSign;
import com.ygxsk.carhome.constant.ExtraKey;
import com.ygxsk.carhome.constant.ExtraValue;
import com.ygxsk.carhome.listener.MianTaskManager;
import com.ygxsk.carhome.retrofit.ApiRequestSubListener;
import com.ygxsk.carhome.retrofit.ApiService;
import com.ygxsk.carhome.retrofit.NetworkManager;
import com.ygxsk.carhome.sys.Session;
import com.ygxsk.carhome.ui.home.HomeMainFragmentActivity;
import com.ygxsk.carhome.ui.usercenter.LoginCarActivity;
import com.ygxsk.carhome.ui.usercenter.WebViewNormalActivity;
import com.ygxsk.carhome.utils.CommTools;
import com.ygxsk.carhome.utils.CommUtils;
import com.ygxsk.integrated.retrofit.Parameterkey;

import java.lang.ref.WeakReference;
import java.util.Map;

import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.disposables.CompositeDisposable;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;


/**
 * @date 2018/1/12 0012
 * @auther itchenqi
 * @description 这个全屏的可以不设置导航条直接继承AppCompatActivity
 */
//@AndroidEntryPoint
public class SplashActivity extends RxAppCompatActivity {

//    @Inject
//    ApiService apiService;

    private Session mSession;

    /**
     * 添加用户隐私协议内容,放在这里
     */
    private MaterialDialog materialDialogSecrecytUrl;

    /*
     * @Author:itchenqi175@163.com
     * @Time:2023-07-06  09:02
     * @Description:添加该界面的处理handler
     */
    private static class BetterHanlderInSplash extends Handler {

        // ⚠ In Android, Handler classes should be static or leaks might occur.
        private final WeakReference<SplashActivity> mActivityInitialize;

        private BetterHanlderInSplash(SplashActivity _splashActivity) {
            this.mActivityInitialize = new WeakReference<SplashActivity>(_splashActivity);
        }

        @Override
        public void handleMessage(Message msg) {
            //super.handleMessage(msg);
            SplashActivity currentActivity = mActivityInitialize.get();
            if (currentActivity != null) {
                switch (msg.what) {
                    case ConstantApi.GO_HOME: {

//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "currentActivity.isLoginIn=" + currentActivity.isLoginIn);
                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "此时真实 登录 状态->MMKV.isLoginIn=" + MMKV.defaultMMKV().decodeBool(ConstantSign.P_ISLOGIN));

                        //涉及到消息推送？
                        //if (currentActivity.isLoginIn) {//isLogin 这里被清除掉了下次再进去就是登陆界面。
                        if (MMKV.defaultMMKV().decodeBool(ConstantSign.P_ISLOGIN)) {//isLogin 这里被清除掉了下次再进去就是登陆界面。
                            currentActivity.goHome();
                        } else {
                            currentActivity.goLogin();
                        }

                        break;
                    }
                    default:
                        break;
                }
            }
        }
    }

    /*private void goGuide() {
        ActivityUtils.startActivity(GuideActivity.class);
        ActivityUtils.finishActivity(this);
    }*/

    private void goLogin() {

        methodLogin();

    }

    private void goHome() {

        //methodHome();

        //2018年05月23日添加友盟推送内容
        Map<String, String> mapExtra = mSession.getMapExtra();

        if (mapExtra != null) {

            if (mSession.isPushToMyMessage()) {//如果是进入我的消息列表界面

                mSession.setPushToMyMessage(false);//这里可能是应用就在前台，从前台直接进入设置false.

                //如果是跳转到消息中心，那么
                if (TextUtils.equals(mapExtra.get("open"), "MY_MESSAGE")) {

                    Intent intentToMessage = new Intent();

                    intentToMessage.setClass(SplashActivity.this, HomeMainFragmentActivity.class);

                    //携带一个标识是 跳转到 首页第二个选项卡：
                    intentToMessage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//必须携带吗？

                    //携带一个跳转到消息选项卡的标识
                    intentToMessage.putExtra(ExtraKey.EXTRA_LOGINKEY, ExtraValue.EXTRA_PUSHTOBULLETIN);

                    SplashActivity.this.startActivity(intentToMessage);

                    SplashActivity.this.finish();

                } else {
                    methodHome();//如若均不符合条件那么均跳转到首页即可。
                }

            } else if (mSession.isPushToBulletinWebview()) {//如果是进入到公告详情的内部webView

                mSession.setPushToBulletinWebview(false);

                if (TextUtils.equals(mapExtra.get("open"), "NOTICE_IS_PUSH")) {//如果匹配是社区公告社群动态

                    //携带参数内容,携带友盟
                    Intent intentToMessage = new Intent();

                    intentToMessage.setClass(SplashActivity.this, WebViewNormalActivity.class);
                    intentToMessage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//必须携带吗？

                    //2019年10月09日的原始代码是：社群动态。
                    intentToMessage.putExtra(ExtraKey.EXTRA_CATEGORY_NAME, ExtraValue.TEXTVIEWNOTEDES_COMMUNITY);
                    //EXTRA_WEBVIEW_FLAG 是判断
                    intentToMessage.putExtra(ExtraKey.EXTRA_WEBVIEW_FLAG, ExtraValue.WEBVIEWFLAG_BULLETIN);
                    intentToMessage.putExtra(ExtraKey.EXTRA_WEBVIEW_NOTICEID, mapExtra.get(Parameterkey.noticeId));

                    SplashActivity.this.startActivity(intentToMessage);

                } else {
                    //如若均不符合条件那么均跳转到首页即可。
                    methodHome();
                }

            } else {
                methodHome();
            }

        } else {
            methodHome();
        }

    }

    private void methodHome() {

        //这里不能用第三方开发包工具，因为会在【同意】隐私政策之后，做启动检测（前台运行)
        //ActivityUtils.startActivity(HomeMainActivity.class);
        //ActivityUtils.finishActivity(this);

        //原始的使用；
        Intent intent = new Intent();
        intent.setClass(SplashActivity.this, HomeMainFragmentActivity.class);
        SplashActivity.this.startActivity(intent);

        SplashActivity.this.finish();

    }


    /**
     * 这个是单独跳转到首页，不需要其他的 将来可能会变动再说。
     */
    private void methodLogin() {

        //这里不能用第三方的工具类跳转，因为涉及到：获取APP的安装信息
        //ActivityUtils.startActivity(LoginActivity.class);
        //ActivityUtils.finishActivity(this);

        //直接的使用android自带的
        Intent intent = new Intent();
        intent.setClass(SplashActivity.this, LoginCarActivity.class);
        //intent.putExtra("adverimageurl", shufflingParcelable);
        SplashActivity.this.startActivity(intent);

        SplashActivity.this.finish();

        //overridePendingTransition(R.anim.fade, R.anim.hold)

    }

    private final CompositeDisposable mCompositeDisposable = new CompositeDisposable();

    private BetterHanlderInSplash mHandler;

    //是否是首次安装的标识，取出一次就行，后边直接用
    private boolean isFirstRun;
    //打开该界面时候上一次的登录状态；
//    private boolean isLoginIn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
        //supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);

        //LogUtils.d("itchen----->SplashActivity onCreate ");
        //LogUtils.d("itchen----->SplashActivity--apiService=> " + apiService);

        if (getSupportActionBar() != null) {
            getSupportActionBar().hide();
        }

        //remove notification bar  即全屏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_splash);

        //设置全屏,因为不能使用androidutilscode的内容；
        //ScreenUtils.setFullScreen(this);
        this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        //设置头部的状态栏
        ImmersionBar.with(this)
                .statusBarColor(R.color.toolbarbg)//白色的
                .navigationBarColor(R.color.black)
                .statusBarDarkFont(true)   //状态栏字体是深色，不写默认为亮色
                .init();

        isFirstRun = MMKV.defaultMMKV().decodeBool(ConstantSign.ISFIRSTRUN, true);
        LogUtils.d("itchen----isFirstRun-->" + isFirstRun);
        //这个必须放在前边；
//        isLoginIn = MMKV.defaultMMKV().decodeBool(ConstantSign.P_ISLOGIN, false);

        mSession = Session.get(this);

        if (mHandler == null) {
            mHandler = new BetterHanlderInSplash(this);
        }

        if (isFirstRun) {

            //点击【同意】之前，如果是首次安装，那么有这个弹窗，如果不是首次安装，那么正常走流程；
            methodShowAgreementDialog(CommTools.getViewCustomForPrivacyAgreement(SplashActivity.this));

        } else {
            //点击【同意】之后做的事情
            method_DoSomeThing_After_Agree_To_Privacy_Policy();

        }

        //2023年11月21日10:00:50 隐私合规不通过
//        CarHelper.initWorkManager(this);

    }

    @Override
    protected void onResume() {
        super.onResume();
        //LogUtils.d("itchen---SplashActivity---onResume");

        if (isFirstRun) {
            //点击【同意】之前，如果是首次安装，那么有这个弹窗，如果不是首次安装，那么正常走流程；
            methodShowAgreementDialog(CommTools.getViewCustomForPrivacyAgreement(SplashActivity.this));

        }

    }

    /**
     * 用户【同意隐私政策之后】做的事情
     */
    private void method_DoSomeThing_After_Agree_To_Privacy_Policy() {

        //获取屏幕分辨率做适配用测试的时候用放开
        //int screenWidth = ScreenUtils.getScreenWidth();
        //int screenHeight = ScreenUtils.getScreenHeight();//1440xx2560v9
        //LogUtils.d("itchen--->分辨率--->" + screenWidth + "x" + screenHeight);
        //LogUtils.d("itchen----执行---method_DoSomeThing_After_Agree_To_Privacy_Policy");

        //观察者发射数据
        mCompositeDisposable.add(Observable.just(0, 1, 2, 3, 4, 5, 6)//
                .subscribeOn(AndroidSchedulers.mainThread())//
                .observeOn(AndroidSchedulers.mainThread())//
                .compose(SplashActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
                .doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Exception {

                        //设置当前用户所在的环境 是【正式环境】还是【测试环境】
                        MMKV.defaultMMKV().encode(ConstantSign.ENVIRONMENT, ApiService.IS_RELEASE ? ApiService.VALUE_ENVIRONMENT_OFFICIAL : ApiService.VALUE_ENVIRONMENT_TEST);

                        //能走到这个逻辑 也就说明app不是首次运行了，再进入登录页面 是可以打开【升级弹窗】的
                        MMKV.defaultMMKV().encode(ConstantSign.MMKV_IS_FIRST_INSTALL_CONTROL_UPDATE_APK_DIALOG, false);

                        // 特别备注：写这个逻辑是因为有【APP不是首次运行，打开了，但是没有“同意”隐私政策，还要接着判断】，
                        // 如果是【首次运行】就不执行，因为首次尽量不搜集用户信息。
                        if (MMKV.defaultMMKV().decodeBool(ConstantSign.ISFIRSTRUN)) {
                            LogUtils.d("itchen---是首次运行--不执行切换后门检查，不获取硬件设备信息，直接退出该方法。");
                            return;
                        }

                        //如下：两个事情是分先后去做的,
                        //2018年01月12日做屏蔽将来放开,做【后门更正切换】；
                        if (MMKV.defaultMMKV().decodeBool(ConstantSign.P_SECRECYTURL_AGREE)) {
//                            LogUtils.d("itchen--订阅之前检查是否有-切换后门-的行为");
                            CommUtils.judgeBackDoor(SplashActivity.this, mSession);

                        } else {
                            Log.d(ConstantSign.LOGCAT_NOMAL, "在准备judgeBackDoor的时候发现用户没有同意隐私政策~");
                        }

                        //---------------------------------------------------------------------------------------------
                        //如果发现硬件的设备信息是空，那么再次获取一次；
                        //硬件设备号
                        if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.P_UUID_UNIQUEDEVICEID_ANDROIDID, DeviceUtils.getUniqueDeviceId()))) {

                            //获取手机的uuid,
                            try {

                                //do
                                String mUniqueDeviceId = DeviceUtils.getUniqueDeviceId();
                                //itchen-splash--try--取到的设备uuid是--->2f3fcefcf61e532e383c9e1619cea366a
                                //MMKV.defaultMMKV().encode(ConstantApi.P_UUID, DeviceUtils.getManufacturer());
                                if (!TextUtils.isEmpty(mUniqueDeviceId)) {
                                    //LogUtils.d("itchen--SplashActivity--DeviceUtils.getUniqueDeviceId()--->" + DeviceUtils.getUniqueDeviceId());
                                    if (mSession != null) {
                                        mSession.setUuid(mUniqueDeviceId);
                                    } else {
                                        MMKV.defaultMMKV().encode(ConstantSign.P_UUID_UNIQUEDEVICEID_ANDROIDID, mUniqueDeviceId);
                                    }

                                } else {

                                    if (mSession != null) {
                                        mSession.setUuid(DeviceUtils.getAndroidID());//按说不执行，就不影响到取设备信息；
                                    } else {
                                        MMKV.defaultMMKV().encode(ConstantSign.P_UUID_UNIQUEDEVICEID_ANDROIDID, DeviceUtils.getAndroidID());
                                    }

                                }

                            } catch (Exception e) {

                                //直接读取 androidid 作为填充,9774d56d682e549c有它所以不会为空
                                if (mSession != null) {
                                    mSession.setUuid(DeviceUtils.getAndroidID());
                                } else {
                                    MMKV.defaultMMKV().encode(ConstantSign.P_UUID_UNIQUEDEVICEID_ANDROIDID, DeviceUtils.getAndroidID());
                                }

                                //上传报错的日志地方
                                if (e != null) {
                                    CommUtils.addLog(SplashActivity.this,//
                                            "",//
                                            "",//
                                            null,  //
                                            "method_DoSomeThing_After_Agree_To_Privacy_Policy方法报错=" + e.getLocalizedMessage());//
                                } else {
                                    CommUtils.addLog(SplashActivity.this,//
                                            "", //
                                            "",//
                                            null,  //
                                            "method_DoSomeThing_After_Agree_To_Privacy_Policy方法报错=" + e.getLocalizedMessage());//
                                }

                                //LogUtils.d("itchen--catch--取到的设备uuid是--->" + DeviceUtils.getAndroidID());

                                e.printStackTrace();
                            }

                        }

                        //---------------------------------------------------------------------------------------------
                        if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.MMKV_MANUFACTURER))) {//手机品牌 -固定
                            MMKV.defaultMMKV().encode(ConstantSign.MMKV_MANUFACTURER, DeviceUtils.getManufacturer());
                        }
                        //---------------------------------------------------------------------------------------------
                        if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.MMKV_MODEL))) {//手机型号-固定
                            MMKV.defaultMMKV().encode(ConstantSign.MMKV_MODEL, DeviceUtils.getModel());
                        }
                        //---------------------------------------------------------------------------------------------
                        if (MMKV.defaultMMKV().decodeInt(ConstantSign.MMKV_SCREENWIDTH) == 0) {//屏幕宽度 -固定
                            MMKV.defaultMMKV().encode(ConstantSign.MMKV_SCREENWIDTH, ScreenUtils.getScreenWidth());
                        }
                        //---------------------------------------------------------------------------------------------
                        if (MMKV.defaultMMKV().decodeInt(ConstantSign.MMKV_SCREENHEIGHT) == 0) {//屏幕高度-固定
                            MMKV.defaultMMKV().encode(ConstantSign.MMKV_SCREENHEIGHT, ScreenUtils.getScreenHeight());
                        }
                        //---------------------------------------------------------------------------------------------
                        if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.MMKV_ABIS))) {//CPU的信息
                            //获取CPU的型号内容
                            String[] arrys = DeviceUtils.getABIs();
                            StringBuffer stringBuffer = new StringBuffer();

                            if (arrys != null && arrys.length > 0) {
                                for (int index = 0; index < arrys.length; index++) {
                                    stringBuffer.append(arrys[index]);
                                    if (index != (arrys.length - 1)) {
                                        stringBuffer.append(",");
                                    }
                                }
                            }
                            MMKV.defaultMMKV().encode(ConstantSign.MMKV_ABIS, stringBuffer.toString());
                        }
                        //---------------------------------------------------------------------------------------------------------------------
                        if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.MMKV_SDKVERSIONNAME))) {//手机硬件的sdk系统版本名称
                            MMKV.defaultMMKV().encode(ConstantSign.MMKV_SDKVERSIONNAME, DeviceUtils.getSDKVersionName());
                        }
                        //-------------------------------------------------------------------------------------------------------------------------------------
//                        if (MMKV.defaultMMKV().decodeInt(ConstantApi.MMKV_SDKVERSIONCODE) == 0) {//手机硬件的sdk系统版本号-序号--这个不固定，因为手机系统升级。
                        MMKV.defaultMMKV().encode(ConstantSign.MMKV_SDKVERSIONCODE, DeviceUtils.getSDKVersionName());
//                        }
                        //-----------------------------------------------------------------------------------------------------------------------------
                        if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.MMKV_APPVERSIONNAME))) {
                            //该APP的版本名称,这会导致升级版本的时候，记录的永远都是上次那个版本，不会重新记录，需要做个对比判断
                            //如果发现版本不相同，那么要重新记录一次。
                            MMKV.defaultMMKV().encode(ConstantSign.MMKV_APPVERSIONNAME, AppUtils.getAppVersionName());

                        } else {
                            if (!TextUtils.equals(MMKV.defaultMMKV().decodeString(ConstantSign.MMKV_APPVERSIONNAME), AppUtils.getAppVersionName())) {
                                MMKV.defaultMMKV().encode(ConstantSign.MMKV_APPVERSIONNAME, AppUtils.getAppVersionName());
                            }
                        }

// ---------------------------------------------------------------------------------------------
//                        if (MMKV.defaultMMKV().decodeInt(ConstantApi.MMKV_APPVERSIONCODE) == 0) {//该APP的版本code-序号--这个也不固定每次可能都不同
                        MMKV.defaultMMKV().encode(ConstantSign.MMKV_APPVERSIONCODE, AppUtils.getAppVersionCode());
//                        }
                        //---------------------------------------------------------------------------------------------

                    }
                })
                .subscribeOn(AndroidSchedulers.mainThread())//以上要执行主线程，因为界面处理要在主线程
                .subscribe(new Consumer<Integer>() {

                    @Override
                    public void accept(Integer integer) throws Exception {

                        //LogUtils.d("itchen----启动页订阅->"+integer);

                        //设置UUID这个一定最好放在这个 systemconfig 接口之前填充uuid保存设备唯一ID信息
                        if (integer == 0) {

                            //2022-6-13 的审核未通过；
                            //用户没有同意，意思协议就获取了设备id信息；
                            //boolean agreed = SPUtils.getInstance().getBoolean(ConstantApi.P_SECRECYTURL_AGREE);
                            //测试的时候放开，正式一定要关闭，影响速度；
                            //首次安装进来 应该是 false;
                            //LogUtils.d("itchen----->添加 setDeviceGUID 的时候 是否已经点击【同意】==>" + MMKV.defaultMMKV().decodeBool(ConstantApi.P_SECRECYTURL_AGREE));
                            //2022-11-16 首先打开【让用户上传日志的开关】
                            MMKV.defaultMMKV().putBoolean(ConstantSign.MMKV_ADDLOG_SUCCESSED, true);

                            if (MMKV.defaultMMKV().decodeBool(ConstantSign.P_SECRECYTURL_AGREE)) {

                                //Log.d(ConstantApi.LOGCAT_NOMAL, "用户已经【同意】可以去获取uuid");

                                //如果本地是空值，那么就重新获取，本地不是空，那么就不获取
                                if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.P_UUID_UNIQUEDEVICEID_ANDROIDID))) {
                                    MMKV.defaultMMKV().encode(ConstantSign.P_UUID_UNIQUEDEVICEID_ANDROIDID, DeviceUtils.getUniqueDeviceId());
                                }

                            } else {
                                Log.d(ConstantSign.LOGCAT_NOMAL, "还未【同意】不能获取uuid");
                            }

                        } else if (integer == 1) {

                            //清理版本号信息
                            clearVersionAndSaveNew();

                            //添加work的内容是加载腾讯X5的
                            CarHelper.initWorkManager(SplashActivity.this);

                        } else if (integer == 2) {

                            //清理就版本信息， 然后获取新的；

                            if (MMKV.defaultMMKV().decodeBool(ConstantSign.P_SECRECYTURL_AGREE)) {

                                gainConfigDatas();

                            } else {
                                Log.d(ConstantSign.LOGCAT_NOMAL, "用户还未【同意】隐私政策，【不能】获取uuid");
                            }

                        } else if (integer == 3) {

                            //重新获取一次token
                            //如果不是空就重新获取
                            if (TextUtils.isEmpty(MMKV.defaultMMKV().decodeString(ConstantSign.P_TOKEN))) {
                                CommUtils.getTokenInterface(NetworkManager.getInstance().getPublic_url_prefix(), SplashActivity.this, mSession);
                            }

                        } else if (integer == 4) {

                            if (MMKV.defaultMMKV().decodeBool(ConstantSign.P_SECRECYTURL_AGREE)) {
                                clearVersionAndSaveNew();
                            } else {
                                Log.d(ConstantSign.LOGCAT_NOMAL, "用户还未【同意】隐私政策，【不能】获取appversioncode");
                            }

                            //2021-6-12 13:49:59是否是首次安装
                            //2021-4-14 15:15:18 首次安装的时候需要设置消息推送的几个选项
                            //设置是否是用户： 首次安装:默认是 true 这里让 true或者false 与【是否是首次安装的语意相互对应】
                            MMKV.defaultMMKV().encode(ConstantSign.ISFIRSTLOGIN, false);

                        } else if (integer == 5) {

                            if (!isFirstRun) {

                                LogUtils.d("itchen----->该用户  不是 首次 安装---暂时没有执行的操作");
                                MMKV.defaultMMKV().encode(ConstantSign.ISFIRSTLOGIN, false);

                            } else {

                                LogUtils.d("itchen----->该用户  是 首次 安装---要设置推送信息");
                                //==========================================================================================
                                //已经同意隐私政策，按不是首次安装算；
                                MMKV.defaultMMKV().encode(ConstantSign.ISFIRSTLOGIN, false);
                                //设置不是首次安装了
                                MMKV.defaultMMKV().encode(ConstantSign.ISFIRSTRUN, false);

                                //横条副是开的
                                MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPBANNERS, true);

                                //声音是开的
                                MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPSOUND, true);
                                //震动是开的
                                MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPSHOCK, true);
                                //午休模式是关的
                                MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPMIDDAYREST, false);
                                //个性化推荐开关
                                MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPPERSONALIZED, false);
                                //==========================================================================================

                            }

                            //2022年8月8日17:18:32 设置每次打开APP，都让调用【是否有新的隐私政策的接口】；后续再动态配置；
//                            MMKV.defaultMMKV().encode(ConstantSign.P_PRIVACYAGREEMENT_DIALOG_SHOW_OR_HIDE, ConstantSign.P_PRIVACYAGREEMENT_DIALOG_SHOW);


                            //用到了blankj的开发包，
//                            if (mSession != null) {
//                                mSession.setActionBarHeight(SizeUtils.px2dp(BarUtils.getActionBarHeight()));
//                            }


                        } else if (integer == 6) {

                            initSeconds();

//                            //做本地数据库是否【有数据未提交】的醒目提示。
//                            int isHaveSomeData = CommUtils.isJudgmentHavaSomeDataInDaos(mSession);
//                            //左侧使用。
//                            //int isHaveSomeData = 1;//CommUtils.isJudgmentHavaSomeDataInDaos(mSession);
//                            //LogUtils.d("itchen----判断---本地是否有未提交的数据---isHaveSomeData-->" + isHaveSomeData);
//
//                            //设置要标记弹窗的 一个数字记录。2021-7-30 11:16:04
//                            //本地有数据，且在首页 是必须弹窗的
//                            //设置本地没有数据库为false
//                            //SPUtils.getInstance().put(ConstantApi.P_IS_JUDGMENT_HAVASOMEDATAINDAOS_MUST_SHOW_DIALOG, isHaveSomeData == 1);
//                            MMKV.defaultMMKV().encode(ConstantApi.P_IS_JUDGMENT_HAVASOMEDATAINDAOS_MUST_SHOW_DIALOG, isHaveSomeData == 1);

                        }

                    }
                }));

        //关联启动服务
        //AppOpsManager appOpsManager = (AppOpsManager) getSystemService(Context.APP_OPS_SERVICE);
        //String op = AppOpsManager.permissionToOp(Permission.ACCESS_FINE_LOCATION);// itchen-result=0
        //String op = AppOpsManager.permissionToOp(Permission.ACCESS_COARSE_LOCATION);//itchen-result=0
        //int result = appOpsManager.checkOpNoThrow(op, android.os.Process.myUid(), getPackageName());
        //LogUtils.d("itchen-result="+result);

        //第一种方式：原始
        /*TypedValue tv = new TypedValue();
        if (this.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
            int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, this.getResources().getDisplayMetrics());
            LogUtils.d("itchen---actionBarHeight---->"+actionBarHeight);//168
            int dp = SizeUtils.px2dp(actionBarHeight);
            //LogUtils.d("itchen---dp-->"+dp);
            mSession.setActionBarHeight(dp);
        }*/

        //第二种方式：封装 2018年04月25日，因为要适配家装团购顶部toolbar所以获取H5页面的时候上传系统默认的toolbar高度
        //int actionBarHeightPx = BarUtils.getActionBarHeight();
        //nt actionBarHeightDp = ;拆解

        //int StatusBarHeight =  BarUtils.getStatusBarHeight();
        //LogUtils.d("itchen---actionBarHeight-->"+SizeUtils.px2dp(BarUtils.getActionBarHeight()));
        //itchen---actionBarHeight-->48 有点手机是56有的是48
        //三星手机是56高度
        //LogUtils.d("itchen---StatusBarHeight-->"+StatusBarHeight);
        //04-25 13:27:35.272 D/itchen:
        //main, com.dgj.propertyowner.ui.splash.SplashActivity.onCreate(SplashActivity.java:247)
        //itchen---actionBarHeight-->168
        //main, com.dgj.propertyowner.ui.splash.SplashActivity.onCreate(SplashActivity.java:248)
        //itchen---StatusBarHeight-->60

        //该界面暂时不做需要权限的内容,给该内容移动到登录界面提示
                            /*AndPermission.with(SplashActivity.this)
                                    .runtime()//
                                    .permission(Permission.Group.PHONE)//读取手机状态
                                    .rationale(new RuntimeRationale())
                                    .onGranted(new Action<List<String>>() {
                                        @Override
                                        public void onAction(List<String> permissions) {
                                            // 有权限，直接do anything.
                                            //即便没有权限，也仍然往下运行界面卡死
                                            //授权成功的逻辑。
                                            //retain
                                            initSeconds();//进入正常的界面

                                        }
                                    }).onDenied(new Action<List<String>>() {
                                @Override
                                public void onAction(List<String> permissions) {

                                    CommUtils.displayToastShort(SplashActivity.this, ConstantApi.NEEDPERMISS_PHONE);

                                    if (AndPermission.hasAlwaysDeniedPermission(SplashActivity.this, permissions)) {
                                        mSetting.showSetting(SplashActivity.this, permissions);
                                    }

                                    //获取权限失败也是要仍然往首页进去 不可卡死
                                    initSeconds();
                                }
                            }).start();*/


        //动态添加广播注册
        //appInstallReceiver = new AppInstallReceiver();

        //IntentFilter intentFilter = new IntentFilter();
        //intentFilter.addAction("android.intent.action.PACKAGE_ADDED");
        //intentFilter.addAction("android.intent.action.PACKAGE_REPLACED");
        //intentFilter.addAction("android.intent.action.PACKAGE_REMOVED");
        //intentFilter.setPriority(1000);
        //intentFilter.addDataScheme("package");

        //this.registerReceiver(appInstallReceiver, intentFilter);

        //PushAgent.getInstance(this).onAppStart();

        //methodTest();

    }

    /**
     * 添加隐私政策的弹窗内容
     */
    private void methodShowAgreementDialog(View viewCustom) {

        if (materialDialogSecrecytUrl == null) {

            //如果  用户并没有点击【同意】，那么弹窗一直展示。
            //用户 是否 点击了【同意】
            //boolean isSecrecyturlAgree = MMKV.defaultMMKV().decodeBool(ConstantApi.P_SECRECYTURL_AGREE);
//            LogUtils.d("itchen----isSecrecyturlAgree----是否点击同意--->" + MMKV.defaultMMKV().decodeBool(ConstantApi.P_SECRECYTURL_AGREE));

            //boolean isFirstRun = SPUtils.getInstance().getBoolean(ConstantApi.ISFIRSTRUN);
            //LogUtils.d("itchen----isFirstRun----是否首次安装--->"+isFirstRun);

            if (!(MMKV.defaultMMKV().decodeBool(ConstantSign.P_SECRECYTURL_AGREE))) {//如果用户是首次安装 并且 用户没有点击【同意】。

                LogUtils.d("itchen----->用户 ： 没有 点击【同意】用户协议。");

                materialDialogSecrecytUrl = new MaterialDialog.Builder(SplashActivity.this)
                        //.title("欢迎使用" + AppUtils.getAppName())//
                        .title(ConstantSign.PRIVACY_AGREEMENT_TITLE)//用户协议和隐私政策
                        .customView(viewCustom, true)//填充自定义View
                        .positiveText(ConstantSign.PRIVACY_AGREEMENT_AGREE)//同意；
                        .positiveColor(ColorUtils.getColor(R.color.red_pressed))//
                        .negativeText(ConstantSign.PRIVACY_AGREEMENT_CLICK_LOOK)//查看隐私政策
                        .neutralText(ConstantSign.PRIVACY_AGREEMENT_CLICK_NOT_USED)//暂不使用
                        .onPositive(new MaterialDialog.SingleButtonCallback() {//
                            @Override
                            public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

                                mCompositeDisposable.add(Observable.just(0, 1, 2, 3, 4, 5, 6, 7)
                                        .subscribeOn(AndroidSchedulers.mainThread())
                                        .observeOn(AndroidSchedulers.mainThread())
                                        .compose(SplashActivity.this.bindUntilEvent(ActivityEvent.DESTROY))
                                        .subscribe(new Consumer<Integer>() {
                                            @Override
                                            public void accept(Integer integer) throws Exception {

                                                if (integer == 0) {

                                                    //标记用户已经【同意】了用户隐私政策内容
                                                    MMKV.defaultMMKV().encode(ConstantSign.P_SECRECYTURL_AGREE, true);
                                                    //LogUtils.d("itchen----->用户点击了 同意 隐私协议，那么就初始化 消息推送。");

                                                    //2022-8-6 要人为的将 用户点击【同意了隐私政策的频率/次数设置为1，表明用户已经点击过了】
                                                    //MMKV.defaultMMKV().encode(ConstantSign.P_PRIVACYAGREEMENT_DIALOG_FREQUENCY, 1);

                                                    //2022-11-16 首次安装，也打开日志开关，因为首次安装登录，输入错误密码，无法上传日志的。故而首先打开【让用户上传日志的开关】
                                                    MMKV.defaultMMKV().putBoolean(ConstantSign.MMKV_ADDLOG_SUCCESSED, true);
                                                    //同时设置当前用户所在的环境 是【正式环境】还是【测试环境】
                                                    MMKV.defaultMMKV().encode(ConstantSign.ENVIRONMENT, ApiService.IS_RELEASE ? ApiService.VALUE_ENVIRONMENT_OFFICIAL : ApiService.VALUE_ENVIRONMENT_TEST);

                                                    //控制是首次安装的，那么控制在登录页和首页 是不提示更新弹窗的
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_IS_FIRST_INSTALL_CONTROL_UPDATE_APK_DIALOG, true);

                                                } else if (integer == 1) {

                                                    //因为要获取一些硬件的设备信息等
                                                    Utils.init(CarApplication.getInstance());

                                                } else if (integer == 2) {

                                                    //--------------------------------------------------------------------------------------
                                                    //获取手机的uuid,
                                                    try {

                                                        //do
                                                        String mUniqueDeviceId = DeviceUtils.getUniqueDeviceId();
                                                        //itchen-splash--try--取到的设备uuid是--->2f3fcefcf61e532e383c9e1619cea366a
                                                        //MMKV.defaultMMKV().encode(ConstantApi.P_UUID, DeviceUtils.getManufacturer());

                                                        if (!TextUtils.isEmpty(mUniqueDeviceId)) {
                                                            mSession.setUuid(mUniqueDeviceId);
                                                        } else {
                                                            mSession.setUuid(DeviceUtils.getAndroidID());
                                                        }

                                                    } catch (Exception e) {
                                                        //直接读取 androidid 作为填充,9774d56d682e549c有它所以不会为空
                                                        mSession.setUuid(DeviceUtils.getAndroidID());
                                                        //LogUtils.d("itchen--catch--取到的设备uuid是--->" + DeviceUtils.getAndroidID());
                                                        e.printStackTrace();
                                                    }

                                                    //获取设备的信息，并且做存储
                                                    //手机品牌
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_MANUFACTURER, DeviceUtils.getManufacturer());
                                                    //手机型号
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_MODEL, DeviceUtils.getModel());
                                                    //屏幕的宽度
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_SCREENWIDTH, ScreenUtils.getScreenWidth());
                                                    //屏幕的高度
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_SCREENHEIGHT, ScreenUtils.getScreenHeight());

                                                    //获取CPU的型号内容
                                                    String[] arrys = DeviceUtils.getABIs();
                                                    StringBuffer stringBuffer = new StringBuffer();
                                                    if (arrys != null && arrys.length > 0) {
                                                        for (int index = 0; index < arrys.length; index++) {
                                                            stringBuffer.append(arrys[index]);
                                                            if (index != (arrys.length - 1)) {
                                                                stringBuffer.append(",");
                                                            }
                                                        }
                                                    }
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_ABIS, stringBuffer.toString());
                                                    //手机硬件的sdk系统版本名称
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_SDKVERSIONNAME, DeviceUtils.getSDKVersionName());
                                                    //手机硬件的sdk系统版本号-序号
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_SDKVERSIONCODE, DeviceUtils.getSDKVersionCode());
                                                    //该APP的版本名称
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_APPVERSIONNAME, AppUtils.getAppVersionName());
                                                    //该APP的版本名称
                                                    MMKV.defaultMMKV().encode(ConstantSign.MMKV_APPVERSIONCODE, AppUtils.getAppVersionCode());

                                                    //--------------------------------------------------------------------------------------
                                                    //硬件设备号
                                                    //LogUtils.d("itchen---P_UUID_UNIQUEDEVICEID_ANDROIDID---" + MMKV.defaultMMKV().decodeString(ConstantApi.P_UUID_UNIQUEDEVICEID_ANDROIDID));
                                                    //itchen---P_UUID_UNIQUEDEVICEID_ANDROIDID---268c7c773de7b3cc1af50370275699324
                                                    //手机品牌
                                                    //LogUtils.d("itchen---MMKV_MANUFACTURER---" + MMKV.defaultMMKV().decodeString(ConstantApi.MMKV_MANUFACTURER));
                                                    //itchen---MMKV_MANUFACTURER---HUAWEI
                                                    //手机型号
                                                    //LogUtils.d("itchen---MMKV_MODEL---" + MMKV.defaultMMKV().decodeString(ConstantApi.MMKV_MODEL));
                                                    //itchen---MMKV_MODEL---DUK-AL20
                                                    //屏幕宽度
                                                    //LogUtils.d("itchen---MMKV_SCREENWIDTH---" + MMKV.defaultMMKV().decodeInt(ConstantApi.MMKV_SCREENWIDTH));
                                                    //itchen---MMKV_SCREENWIDTH---null
                                                    //屏幕高度
                                                    //LogUtils.d("itchen---MMKV_SCREENHEIGHT---" + MMKV.defaultMMKV().decodeInt(ConstantApi.MMKV_SCREENHEIGHT));
                                                    // itchen---MMKV_SCREENHEIGHT---null
                                                    //CPU型号等
                                                    //LogUtils.d("itchen---MMKV_ABIS---" + MMKV.defaultMMKV().decodeString(ConstantApi.MMKV_ABIS));
                                                    //itchen---MMKV_ABIS---arm64-v8a,armeabi-v7a,armeabi
                                                    //SDK的版本-名称
                                                    //LogUtils.d("itchen---MMKV_SDKVERSIONNAME---" + MMKV.defaultMMKV().decodeString(ConstantApi.MMKV_SDKVERSIONNAME));
                                                    //itchen---MMKV_APPVERSIONNAME---2.0.3
                                                    //SDK的版本-序号
                                                    //LogUtils.d("itchen---MMKV_SDKVERSIONCODE---" + MMKV.defaultMMKV().decodeInt(ConstantApi.MMKV_SDKVERSIONCODE));
                                                    //APP的版本名称
                                                    //LogUtils.d("itchen---MMKV_APPVERSIONNAME---" + MMKV.defaultMMKV().decodeString(ConstantApi.MMKV_APPVERSIONNAME));
                                                    //----------------------------------------------------------------------------------------------------------------------

                                                } else if (integer == 3) {

                                                    //初始化第三方的SDK内容；
                                                    CarHelper.methodInitThridSDKNoHTTPInShowAgreementDialog(SplashActivity.this.getApplicationContext());

                                                } else if (integer == 4) {

                                                    //这里是应该先获取 baseUrl 的接口内容；
                                                    gainConfigDatas();

                                                } else if (integer == 5) {

                                                    //method_ DoSomeThing_ After_ Agree_ To_ Privacy_ Policy();
                                                    //友盟消息推送的相关
                                                    //横条副是开的
                                                    MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPBANNERS, true);
                                                    //声音是开的
                                                    MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPSOUND, true);
                                                    //震动是开的
                                                    MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPSHOCK, true);
                                                    //午休模式是关的
                                                    MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPMIDDAYREST, false);
                                                    //个性化推荐开关
                                                    MMKV.defaultMMKV().encode(ConstantSign.P_SWITCHBUTTONAPPPERSONALIZED, false);

                                                } else if (integer == 6) {//获取token内容信息

                                                    //只要点击了同意 就立即 获取token ---因为涉及到 获取android_id
                                                    CommUtils.getTokenInterface(NetworkManager.getInstance().getPublic_url_prefix(), SplashActivity.this, mSession);

                                                } else if (integer == 7) {

                                                    // TODO: 2023-07-06 09:49 是否要添加上传【同意隐私政策】；
                                                    //上传【同意】的接口 可以放在最后执行；
                                                    //2022年8月8日18:03:20 这里用户 是首次安装，是要上传【已经同意了】新的隐私政策内容，避免在首页再弹窗。
                                                    //2022-8-6 既然用户在登录页点击了【同意】，那么就要将用户【同意新的隐私政策】设置为true，
//                                                  CommTools.gainDatasUploadSetSignState(SplashActivity.this,//
//                                                            SplashActivity.this,//
//                                                            new ApiRequestSubListener() {
//                                                                @Override
//                                                                public void addLogInApiRequestListener(Context _context, String _interfaceAddress, String _requestMethod, HashMap _requestParamObject, String _errorMessageMy) {
//                                                                    super.addLogInApiRequestListener(_context, _interfaceAddress, _requestMethod, _requestParamObject, _errorMessageMy);
//                                                                }
//                                                            });

                                                    //设置上次打开记录的版本号，为了版本更新用
                                                    MMKV.defaultMMKV().encode(ConstantSign.APP_UPDATE_ANDROID_CURVERSIONCODE, CommUtils.getVersionCode(SplashActivity.this));

                                                    //设置是首次登录
                                                    MMKV.defaultMMKV().encode(ConstantSign.ISFIRSTLOGIN, true);

                                                    //设置不是首次 安装、运行了
                                                    MMKV.defaultMMKV().encode(ConstantSign.ISFIRSTRUN, false);

                                                    goLogin();

                                                }
                                            }
                                        }));

                                if (materialDialogSecrecytUrl.isShowing()) {
                                    materialDialogSecrecytUrl.dismiss();
                                    materialDialogSecrecytUrl.cancel();
                                    materialDialogSecrecytUrl = null;
                                }

                            }
                        })
                        .onNegative(new MaterialDialog.SingleButtonCallback() {
                            @Override
                            public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

                                //查看用户隐私政策的按钮；
                                //标识他还没有
                                MMKV.defaultMMKV().encode(ConstantSign.P_SECRECYTURL_AGREE, false);

                                //2022年9月6日 因为隐私政策做成了加载离线的html文档，所以这种需要判断。
                                if (MMKV.defaultMMKV().decodeBool(ConstantSign.P_SECRECYTURL_AGREE)) {
                                    LogUtils.d("itchen---点击《服务协议--用户 已经 点击【同意--隐私政策】");
                                    CommUtils.methodSecrecytUrl(SplashActivity.this);//隐私政策加载在线文档；

                                } else {
                                    LogUtils.d("itchen---点击《服务协议》--用户 没有 点击【同意--隐私政策】");
                                    CommUtils.methodSecrecytUrl_loadLocal(SplashActivity.this);//隐私政策加载离线文档；
                                }

                                if (materialDialogSecrecytUrl.isShowing()) {
                                    materialDialogSecrecytUrl.dismiss();
                                    materialDialogSecrecytUrl.cancel();
                                    materialDialogSecrecytUrl = null;
                                }

                            }
                        }).onNeutral(new MaterialDialog.SingleButtonCallback() {
                            @Override
                            public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

                                MMKV.defaultMMKV().encode(ConstantSign.P_SECRECYTURL_AGREE, false);

                                //点击不同意
                                if (materialDialogSecrecytUrl.isShowing()) {
                                    materialDialogSecrecytUrl.dismiss();
                                    materialDialogSecrecytUrl.cancel();
                                    materialDialogSecrecytUrl = null;
                                }

                                //2021年11月1日15:14:14 点击了【不同意】，那末就反复的弹窗。
                                //直接杀死APP，并且重置 安装应用为首次安装。
                                //是用户不同意的，那末下次还点开。
                                MMKV.defaultMMKV().encode(ConstantSign.P_SECRECYTURL_AGREE, false);

                                //同时也【未同意】友盟的隐私政策
                                UMConfigure.submitPolicyGrantResult(SplashActivity.this.getApplicationContext(), false);

                                //----------------------------------------------------------------------------------------------
                                //直接的退出APP
                                if (MianTaskManager.getInstance(SplashActivity.this) != null) {
                                    MianTaskManager.getInstance(SplashActivity.this).finishAllActivity();
                                }

                                if (!isFinishing()) {
                                    //避开使用blankj，将来可放开；
                                    //ActivityUtils.finishActivity(SplashActivity.this);
                                    SplashActivity.this.finish();
                                }

                                //避开采用blankj
                                //AppUtils.exitApp();
                                //不同意隐私协议，退出app
                                Process.killProcess(Process.myPid());

                                System.exit(0);
                                //--------------------------------------------------------------------

                            }
                        }).cancelable(false).show();

                //设置字体大小
                //materialDialogSecrecytUrl.getActionButton(DialogAction.POSITIVE).setTextSize(15);

            } else {
                LogUtils.d("itchen----->用户：已经 点击过【同意】用户协议。");
            }
        }

    }


    private void clearVersionAndSaveNew() {

        if (mHandler != null) {
            mHandler.post(clearOldVersionAndSavaNewRunnable);
        }

    }

    private void initSeconds() {

        if (mHandler != null) {
            //第一种延迟发送
            //mHandler.sendEmptyMessageDelayed(ConstantApi.GO_HOME, ConstantApi.SPLASH_DELAY_MILLIS);
            //第二种不延迟直接跳转到首页
            mHandler.sendEmptyMessage(ConstantApi.GO_HOME);
        }

    }

    /**
     * 清理旧的版本信息内容然后存入新的版本号
     */
    private final Runnable clearOldVersionAndSavaNewRunnable = new Runnable() {

        @Override
        public void run() {

            //单独放在sputils之中和PreferenceManager分开做区别。
            //如果当前安装的App的versionCode大于上次安装App的版本号，那么清理所有App的数据，然后将当前的版本号存入偏好设置
            //原始代码
            //int versionCodeLastest = SPUtils.getInstance().getInt(ConstantApi.APP_UPDATE_ANDROID_CURVERSIONCODE, 0);

            //String cachePath = PathUtils.getInternalAppCachePath();
            //同时间清理webView的缓存内容
            //LogUtils.d("itchen----做清理webView的缓存内容---->"+cachePath);
            // itchen----做清理webView的缓存内容---->/data/user/0/com.dgj.dinggovern/cache

            //为什么要等于是因为正式环境和测试环境不退出安装导致数据首页空白错乱
            //后来为什么给等于赋值 去掉了 是因为：记不住登录状态
            //if (AppUtils.getAppVersionCode() > MMKV.defaultMMKV().decodeInt(ConstantApi.APP_UPDATE_ANDROID_CURVERSIONCODE, 0)) {
            if (CommUtils.getVersionCode(SplashActivity.this) > MMKV.defaultMMKV().decodeInt(ConstantSign.APP_UPDATE_ANDROID_CURVERSIONCODE, 0)) {

                //CommUtils.ClearAllOutData(mSession, SplashActivity.this, "");

                //注释勿删：主要是升级版本的时候清理内部的缓存数据，主要是webView和图片的
                //FileUtils.deleteAllInDir(PathUtils.getInternalAppCachePath());

                boolean isSuccessed = FileUtils.deleteAllInDir(PathUtils.getInternalAppCachePath());

                LogUtils.d("itchen---是否清理旧的安装包成功---->" + isSuccessed);

            } else {
                //LogUtils.d("itchen----发现版本号相同");
            }

            //等到检测是重新覆盖安装的时候执行这个操作。
            MMKV.defaultMMKV().encode(ConstantSign.APP_UPDATE_ANDROID_CURVERSIONCODE, CommUtils.getVersionCode(SplashActivity.this));

        }
    };


    @Override
    protected void onDestroy() {
        super.onDestroy();

        //reset
        if (mHandler != null) {
            if (clearOldVersionAndSavaNewRunnable != null) {
                mHandler.removeCallbacks(clearOldVersionAndSavaNewRunnable);
            }
            //2019/1/27 这个多余可以省略
            /*if (setVersionRunable != null) {
                mHandler.removeCallbacks(setVersionRunable);
            }*/
            mHandler.removeCallbacksAndMessages(null);
            mHandler = null;
        }

        if (materialDialogSecrecytUrl != null) {
            CommUtils.checkMaterialDialog(materialDialogSecrecytUrl);
        }

        if (mCompositeDisposable != null) {
            mCompositeDisposable.clear();
            //2018年06月09日发现，假如这个给释放为null会直接导致在loginActivity中弹权限弹窗弹不出来
            //mCompositeDisposable = null;
        }

        //this.unregisterReceiver(appInstallReceiver);
        MianTaskManager.getInstance(this).popOneActivity(new WeakReference<Activity>(this));
        //LogUtils.d("itchen----SplashActivity---onDestroy");

    }

    public void gainConfigDatas() {

        //做接收数据的处理内容
        if (NetworkUtils.isConnected()) {
            CommUtils.getSystemConfig(this, mSession, new ApiRequestSubListener() {//这种空构造函数是不需要activity的内容的
                @Override
                public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
                    super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);
                }
            });
        } else {
            //没有联网-放过-留着下一个界面操作，但是给用户一个提示
            ToastUtils.showShort(ConstantSign.NONET);
        }

    }

}
